package com.thx.addressbook.action;

import com.thx.addressbook.model.AddressbookCategory;
import com.thx.addressbook.service.AddressbookCategoryService;
import com.thx.addressbook.view.CategoryGroupView;
import com.thx.common.struts2.CurdAction;
import com.thx.common.web.ActionResult;
import com.thx.log.LogUtil;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import java.util.Date;
import java.util.List;

/**
 * 通讯录分类
 * 
 * @author conquerorpc
 *
 */
@ParentPackage(value = "gloab-package")
@Namespace(value = "/addressbook")
@Action(value = "addressbookCategory",
    results = {@Result(name = "category", location = "/pages/addressbook/address_category.jsp"),
        @Result(name = "tree", location = "/pages/addressbook/category/tree.jsp"),
        @Result(name = "list", location = "/pages/addressbook/category/list.jsp"),
        @Result(name = "input", location = "/pages/addressbook/category/input.jsp"),
        @Result(name = "categoryenterprise",
            location = "/pages/addressbook/address_category_enterprise.jsp"),
        @Result(name = "tree_auth", location = "/pages/addressbook/category/tree_auth.jsp"),
        @Result(name = "tree_authlist", location = "/pages/addressbook/category/list_auth.jsp"),
        @Result(name = "json", type = "json", params = {"root", "result"})},
    interceptorRefs = {@InterceptorRef(value = "topDtStack"),
        @InterceptorRef(value = "pageInterceptor", params = {"includeMethods", "list"}),
        @InterceptorRef(value = "pageInterceptor", params = {"includeMethods", "tree_authlist"}),})
@Controller
@Scope("prototype")
public class AddressbookCategoryAction extends CurdAction<AddressbookCategory> {

  private static final long serialVersionUID = 1L;
  private static final Logger logger = LoggerFactory.getLogger(AddressbookCategoryAction.class);

  @Autowired
  private AddressbookCategoryService service;

  private List<CategoryGroupView> categoryGroupView;
  private List<AddressbookCategory> enterpriseCategoryList;
  private String ids;
  private String treeNodes;
  private String pid;
  private String searchAcName;


  // 测试数据
  private Long enterpriseId = 181L;
  private Long personnelId = 1048L;
  private Long depId = 1L;
  private Long role = 1L;
  private Boolean ifAdmin = true;

  /**
   * 分类左树右列表首页.
   * 
   */
  public String category() {
    logger.debug("<进入>:category方法");
    return "category";
  }

  /**
   * 分类左树页面.
   * 
   */
  public String tree() {
    logger.debug("<进入>:tree方法");
    this.showCategory();
    return "tree";
  }

  /**
   * 分类右列表数据.
   */
  public void showCategory() {
    logger.debug("<进入>:showCategory方法  显示分类");
    try {
      logger.debug("<进入>:查询树数据");
      entity.setEnterpriseId(enterpriseId);
      categoryGroupView =
          service.findAllCategoryGroupViews(personnelId, depId, role, ifAdmin, enterpriseId);
      treeNodes = com.alibaba.fastjson.JSON.toJSONString(categoryGroupView);
      writeJson(treeNodes);
      setResult(SUCCESS, "查询成功！");
    } catch (Exception e) {
      logger.error("<错误>:查询通讯录分类异常{}", e);
    }
    logger.debug("<出参>:树查询方法result={}", categoryGroupView);
  }

  protected void doList() {
    try {
      logger.debug("<进入>分类列表信息查询list");
      logger.debug("<入参>searchAcName:{}" + searchAcName);
      list = service.findByAcNameAndPersonnelProperties(searchAcName, personnelId, depId, role,
          ifAdmin, enterpriseId);
      logger.debug("<出参>查询结果集{}：", list);
    } catch (Exception e) {
      logger.error("<错误>list查询异常{}", e);
    }
  }

  protected void doView() {
    try {
      logger.debug("<进入>分类详情查询");
      logger.debug("<入参>查询参数id:{}", id);
      if (StringUtils.isNotBlank(id)) {
        entity = service.get(Long.parseLong(id));
      } else {
        logger.info("无法获取id");
      }
      logger.debug("<出参>查询结果{}：", entity);
    } catch (Exception e) {
      logger.error("<错误>分类详情查询异常{}", e);
    }
  }

  /**
   * 新增、修改显示页面.
   * 
   */
  public String input() {
    logger.debug("<进入>:分类修改/新增跳转方法");
    logger.info("<入参>:id={}", id);
    try {
      if (StringUtils.isNotBlank(id)) {
        entity = service.get(Long.parseLong(id));
      }
      logger.debug("<出参>查询结果{}：", entity);
    } catch (Exception e) {
      logger.error("<错误>:查询异常");
    }
    return "input";
  }

  /**
   * 新增修改方法.
   */
  public void doSave() {
    try {
      if (StringUtils.isBlank(id)) {
        logger.debug("<进入>:分类管理新增方法");
        logger.info("<入参>:新增数据={}", entity);
        AddressbookCategory entityd = new AddressbookCategory();
        entityd.setEnterpriseId(enterpriseId);
        entityd.setAcName(entity.getAcName());
        entityd.setAcIcon(entity.getAcIcon());
        entityd.setIsPublic("0");
        entityd.setAcOrder(entity.getAcOrder());
        entityd.setCreateTime(new Date());
        entityd.setCreateUser("" + personnelId);
        service.save(entityd);
        setResult(SUCCESS, "新增成功！");
        LogUtil.log("分类管理", LogUtil.ACTION_UPDATE, LogUtil.RESULT_SUCCESS, "新增信息");
      } else {
        logger.debug("<进入>:分类管理修改方法");
        logger.info("<入参>:修改分类id={}", entity);
        AddressbookCategory entityd = service.get(Long.parseLong(id));
        entityd.setAcName(entity.getAcName());
        entityd.setAcIcon(entity.getAcIcon());
        entityd.setAcOrder(entity.getAcOrder());
        entityd.setUpdateTime(new Date());
        entityd.setUpdateUser("" + personnelId);
        service.update(entityd);
        setResult(SUCCESS, "修改成功！");
        LogUtil.log("分类管理", LogUtil.ACTION_UPDATE, LogUtil.RESULT_SUCCESS, "修改信息");
      }
    } catch (Exception e) {
      if (StringUtils.isNotBlank(id)) {
        LogUtil.log("分类管理", LogUtil.ACTION_UPDATE, LogUtil.RESULT_FAIL, "修改信息");
        logger.error("<错误>:修改异常{}", e);
      } else {
        LogUtil.log("分类管理", LogUtil.ACTION_UPDATE, LogUtil.RESULT_FAIL, "新增信息");
        logger.error("<错误>:新增异常{}", e);
      }
    }
  }

  protected void doDelete() {
    logger.debug("<进入>:删除分类信息方法");
    try {
      if (StringUtils.isNotBlank(id)) {
        logger.debug("<入参>:分类信息数据id={}", id);
        service.delete(NumberUtils.toLong(id));
        setResult(ActionResult.SUCCESS, "删除成功！");
        LogUtil.log("分类信息管理", LogUtil.ACTION_DELETE, LogUtil.RESULT_SUCCESS, "删除分类信息");
      } else {
        setResult(ActionResult.FAIL, "服务器异常！");
      }
    } catch (Exception e) {
      logger.error("<错误>:删除异常{}", e);
      setResult(ActionResult.FAIL, "服务器异常！");
    }
  }

  /**
   * 批量删除信息.
   */
  protected void doDelMulti() {
    logger.debug("<进入>:批量删除分类信息方法");
    try {
      if (ids != null && ids.split(",").length > 0) {
        logger.debug("<入参>:批量删除分类信息id={}", ids);
        for (String del : ids.split(",")) {
          service.delete(NumberUtils.toLong(del));
        }
        setResult(ActionResult.SUCCESS, "批量删除成功！");
        LogUtil.log("分类数据管理", LogUtil.ACTION_DELETE, LogUtil.RESULT_SUCCESS, "批量删除信息");
      } else {
        setResult(ActionResult.FAIL, "服务器异常！");
      }
    } catch (Exception e) {
      logger.error("<错误>:批量删除异常{}", e);
      setResult(ActionResult.FAIL, "服务器异常！");
    }
  }

  /**
   * 分类名称是否存在核对方法.
   */
  public void checkName() {
    // logger.debug("<进入>:分类信息验证方法");
    // try {
    // logger.info("<入参>:分类信息名称={}", entity.getLabelCn());
    // PhoneTariff f =
    // surveyClassService.findBySmsoperators(entity.getLabelCn());
    // logger.debug("<出参>:分类信息{}", f);
    // if (f == null) {
    // checkJson = JSONObject.toJSONString(true);
    // } else {
    // if (f.getId().toString().equals(id)) {
    // checkJson = JSONObject.toJSONString(true);
    // } else {
    //
    // checkJson = JSONObject.toJSONString(false);
    // }
    // }
    // logger.info("<出参>:资费信息checkJson={}", checkJson);
    // writeJson(checkJson);
    // } catch (Exception e) {
    // logger.error("<错误>:验证异常{}",e);
    // }
  }

  /**
   * 企业分类授权左树右列表页面.
   */
  public String categoryenterprise() {
    logger.debug("<进入>:categoryenterprise方法");
    return "categoryenterprise";
  }

  /**
   * 企业分类授权左树页面.
   */
  public String tree_auth() {
    logger.info("<进入>:tree_auth方法企业分类");
    try {
      logger.info("<进入>:查询树数据");
      enterpriseCategoryList = service.findAllEnterpriseCategory(enterpriseId);
      treeNodes = com.alibaba.fastjson.JSON.toJSONString(enterpriseCategoryList);
      writeJson(treeNodes);
      setResult(SUCCESS, "查询成功！");
    } catch (Exception e) {
      logger.error("<错误>:查询通讯录分类异常{}", e);
    }
    logger.info("<出参>:树查询方法result={}", enterpriseCategoryList);
    return "tree_auth";
  }

  /**
   * 企业分类授权右列表页面.
   */
  public String tree_authlist() {
    try {
      logger.debug("<进入>分类列表信息查询tree_authlist");
      enterpriseCategoryList = service.findEnterpriseCategory(enterpriseId);
      logger.debug("<出参>查询结果集{}：", enterpriseCategoryList);
    } catch (Exception e) {
      logger.error("<错误>enterpriseCategoryList查询异常{}", e);
    }
    return "tree_authlist";
  }

  // // 显示左树右列表列表跳转
  // public String treeRightList() {
  // String result = "";
  // try {
  // if (StringUtils.isNotBlank(pid)) {
  // logger.debug("<进入>:查询指标树数据");
  // logger.info("<入参>:查询父节点={}", pid);
  // String[] pidArrays = StringUtils.split(pid, "_");
  // if (StringUtils.equals("c", pidArrays[0])) {
  // result = groupLists();
  // }
  // // sonList = service.findByParentId(Long.parseLong(pid));
  // // logger.info("<出参>:查询方法sonList={}", sonList);
  // }
  // } catch (Exception e) {
  // logger.error("<错误>:查询异常{}", e);
  // }
  // return result;
  // }
  //
  // // 分组管理列表
  // public String groupLists() {
  // try {
  // logger.info("<进入>分类分组信息查询list");
  // logger.debug("<入参>searchGroupName:{}" + searchGroupName);
  // logger.info("<入参>:查询父节点={}", pid);
  // String[] pidArrays = StringUtils.split(pid, "_");
  // Long enterpriseId = 181l;
  // Long acId = NumberUtils.toLong(pidArrays[1]);
  // addressbookGroupList =
  // addressbookGroupService.findByAgnameAndEnterpriseProperties(searchGroupName,
  // enterpriseId, acId);
  // logger.debug("<出参>查询结果集{}：", list);
  // } catch (Exception e) {
  // logger.error("<错误>list查询异常{}", e);
  // }
  // return "groupLists";
  // }

  // protected void doView() {
  // try {
  // logger.info("<进入>报表管理详情查询");
  // logger.debug("<入参>查询参数id:{}", id);
  // if (StringUtils.isNotBlank(id)) {
  // entity = service.get(Long.parseLong(id));
  // arrayView = service.getViewByArrayId(entity.getArrayId());
  // arrayViewList = service.getViewContentByArrayId(entity.getArrayId(),
  // true);
  // } else {
  // logger.info("无法获取id");
  // }
  // logger.debug("<出参>查询结果{}：", entity);
  // } catch (Exception e) {
  // logger.error("<错误>报表管理详情查询异常{}", e);
  // }
  // }
  //
  // public String input() {
  // logger.debug("<进入>:报表管理修改/新增跳转方法");
  // try {
  // if (StringUtils.isNotBlank(id)) {
  // entity = service.get(Long.parseLong(id));
  // }
  // surveyClassList = surveyClassService.getAll();
  // surveyPeriodListt = surveyPeriodService.getAll();
  // majorList = surveyPropertyService.findAllByMajorAsc();
  // logger.debug("<出参>查询结果{}：", entity);
  // } catch (Exception e) {
  // logger.error("<错误>:查询异常");
  // }
  // return "input";
  // }
  //
  // /**
  // * 新增修改方法
  // */
  // public void doSave() {
  // try {
  // if (StringUtils.isBlank(id)) {
  // logger.debug("<进入>:报表管理管理新增方法");
  // logger.info("<入参>:新增数据={}", entity);
  // entity.setSurveyClassId("1");
  // entity.setSurveyPeriodId("01");
  // entity.setCreateTime(DateFormatUtils.format(new Date(), "yyyyMMdd"));
  // if(StringUtils.isBlank(entity.getRepDate())){
  // entity.setRepDate(DateFormatUtils.format(new Date(), "yyyy"));
  // }
  // entity.setOpenStatus("");
  // entity.setFootnoteCn("");
  // entity.setFootnoteEn("");
  // entity.setFootnote2Cn("");
  // entity.setFootnote2En("");
  // entity.setArrayManagerDept("");
  // entity.setArrayMake("");
  // entity.setArrayCheck("");
  // entity.setArrayMakePhone("");
  // entity.setArrayNumber("A-" + DateFormatUtils.format(new Date(),
  // "dd-MM-yyyy"));
  // entity.setSymbleStatus("4");
  // service.createArray(entity);
  // setResult(SUCCESS, "新增成功！");
  // LogUtil.log("报表管理管理", LogUtil.ACTION_UPDATE, LogUtil.RESULT_SUCCESS,
  // "新增信息");
  // } else {
  // logger.debug("<进入>:报表管理管理修改方法");
  // logger.info("<入参>:修改报表管理id={}", entity.getId());
  // Array arrayTemp = service.get(Long.parseLong(id));
  // logger.info("<入参>:修改报表对象id={}", arrayTemp);
  // arrayTemp.setArrayNameCn(entity.getArrayNameCn());
  // arrayTemp.setArrayNameEn(entity.getArrayNameEn());
  // arrayTemp.setUpdateTime(DateFormatUtils.format(new Date(), "yyyyMMdd"));
  // if(StringUtils.isNotBlank(entity.getRepDate())){
  // arrayTemp.setRepDate(entity.getRepDate());
  // }
  // service.save(arrayTemp);
  // setResult(SUCCESS, "修改成功！");
  // LogUtil.log("报表管理管理", LogUtil.ACTION_UPDATE, LogUtil.RESULT_SUCCESS,
  // "修改信息");
  // }
  // } catch (Exception e) {
  // if (StringUtils.isNotBlank(id)) {
  // LogUtil.log("报表管理管理", LogUtil.ACTION_UPDATE, LogUtil.RESULT_FAIL,
  // "修改信息");
  // logger.error("<错误>:修改异常{}", e);
  // } else {
  // LogUtil.log("报表管理管理", LogUtil.ACTION_UPDATE, LogUtil.RESULT_FAIL,
  // "新增信息");
  // logger.error("<错误>:新增异常{}", e);
  // }
  // }
  // }
  //
  // protected void doDelete() {
  // logger.debug("<进入>:删除报表管理信息方法");
  // try {
  // if (StringUtils.isNotBlank(id)) {
  // logger.info("<入参>:报表管理信息数据id={}", entity.getId());
  // service.delete(Long.parseLong(id));
  // setResult(ActionResult.SUCCESS, "删除成功！");
  // LogUtil.log("报表管理信息管理", LogUtil.ACTION_DELETE, LogUtil.RESULT_SUCCESS,
  // "删除报表管理信息");
  // } else {
  // setResult(ActionResult.FAIL, "服务器异常！");
  // }
  // } catch (Exception e) {
  // logger.error("<错误>:删除异常{}", e);
  // setResult(ActionResult.FAIL, "服务器异常！");
  // }
  // }
  //
  // /**
  // * 批量删除信息
  // */
  // protected void doDelMulti() {
  // logger.debug("<进入>:批量报表管理信息方法");
  // try {
  // if (ids != null && ids.split(",").length > 0) {
  // logger.info("<入参>:批量删除报表管理信息id={}", ids);
  // for (String del : ids.split(",")) {
  // service.delete(Long.parseLong(del));
  // }
  // setResult(ActionResult.SUCCESS, "批量删除成功！");
  // LogUtil.log("报表管理数据管理", LogUtil.ACTION_DELETE, LogUtil.RESULT_SUCCESS,
  // "批量删除信息");
  // } else {
  // setResult(ActionResult.FAIL, "服务器异常！");
  // }
  // } catch (Exception e) {
  // logger.error("<错误>:批量删除异常{}", e);
  // setResult(ActionResult.FAIL, "服务器异常！");
  // }
  // }

  // /**
  // * 点击 通讯录分类 显示的界面 建立日期 : Apr 16, 2013 5:41:50 PM<br>
  // * 作者 : 孙耀飞<br>
  // *
  // * @return
  // */
  // public String addBookCateShow() {
  // logger.debug("<进入>:addBookCateShow方法 显示通讯录分类界面");
  // return "show";
  // }

  // @Override
  // public void doList() {
  // logger.debug("<进入>:doList方法");
  // try {
  // if (StringUtils.isNotBlank(query)) {
  // entity.setQuery(query);
  // }
  // Long enterpriseId = (Long) getSession().getAttribute("enterpriseId");
  // Personnel p = (Personnel) getSession().getAttribute("personnel");
  // entity.setEnterpriseId(enterpriseId);
  // page.setCount(service.queryCount(entity, p));
  // List<AddressbookCategory> finalList = new
  // ArrayList<AddressbookCategory>();
  // List<AddressbookCategoryInter> interList =
  // service.queryAllByCondition(entity,
  // page.getStart(), page.getMax(), p);
  // if (interList != null && interList.size() > 0) {
  // for (AddressbookCategoryInter inter : interList) {
  // AddressbookCategory c = new AddressbookCategory();
  // BeanUtilExtend.copyProperties(c, inter);
  // finalList.add(c);
  // }
  // }
  // page.setResult(finalList);
  // try {
  // Print2databaselog.print(p, OAConstant.MODULE_ADDRESSCATEGORY,
  // OAConstant.ACTION_SEARCH,
  // p.getName() + ",查询通讯录分类", new Date() + "",
  // AppContext.getProperties("oabiz"));
  // } catch (UnknownHostException e) {
  // logger.error("<错误>:查询通讯录分类出错" + e);
  // }
  // } catch (Exception e) {
  // logger.error("<错误>:后台查询职务信息出错", e);
  // }
  // }
  //
  // /**
  // * 新建或修改通讯录分类 建立日期 : Apr 18, 2013 5:41:50 PM<br>
  // * 作者 : wangamin<br>
  // *
  // * @return
  // */
  // public String saveUpdateInfo() {
  // logger.debug("<进入>:saveUpdateInfo方法");
  // try {
  // Long enterpriseId = (Long) getSession().getAttribute("enterpriseId");
  // Personnel p = (Personnel) getSession().getAttribute("personnel");
  // if (entity.getAcId() == null) {
  // entity.setCreateUser(p.getName());
  // entity.setEnterpriseId(enterpriseId);
  // entity.setCreateTime(new Date());
  // entity.setIsPublic(OAConstant.NO_PUBLIC);
  // service.saveOrUpdate(entity);
  // try {
  // Print2databaselog.print(p, OAConstant.MODULE_ADDRESSCATEGORY,
  // OAConstant.ACTION_ADD,
  // p.getName() + ",新增通讯录分类,分类名称：" + entity.getAcName(), new Date() + "",
  // AppContext.getProperties("oabiz"));
  // } catch (UnknownHostException e) {
  // logger.error("<错误>:新增通讯录分类出错" + e);
  // }
  // } else {
  // AddressbookCategoryInter category = new AddressbookCategory();
  // entity.setEnterpriseId(enterpriseId);
  // category = service.queryCategoryOne(entity);
  // entity.setUpdateUser(p.getName());
  // entity.setUpdateTime(new Date());
  // if (category != null && entity != null) {
  // setNewValue(category, entity);
  // }
  // service.saveOrUpdate(category);
  // try {
  // Print2databaselog.print(p, OAConstant.MODULE_ADDRESSCATEGORY,
  // OAConstant.ACTION_UPDATE,
  // p.getName() + ",修改通讯录分类,分类ID:" + entity.getAcId(), new Date() + "",
  // AppContext.getProperties("oabiz"));
  // } catch (UnknownHostException e) {
  // logger.error("<错误>:修改通讯录分类出错" + e);
  // }
  // }
  // } catch (Exception e) {
  // logger.error("<错误>:通讯录分类新建或修改错误", e);
  // }
  // return "category";
  // }
  //
  // /**
  // * 跳转到新建或修改通讯录分类页面 建立日期 : Apr 18, 2013 5:41:50 PM<br>
  // * 作者 : wangamin<br>
  // *
  // * @return
  // */
  // public String show() {
  // Long enterpriseId = (Long) getSession().getAttribute("enterpriseId");
  // entity.setEnterpriseId(enterpriseId);
  // if (entity.getAcId() != null) {
  // entity = (AddressbookCategory) service.queryCategoryOne(entity);
  // }
  // return "input";
  // }
  //
  // /**
  // * @创建日期 2013-4-19<br>
  // * @作者: wangamin <br>
  // * @描述: 根通讯录名称验证通讯录是否存在<br>
  // */
  // public void queryByName() {
  // String json = "";
  // int msg = 0;
  // try {
  // if (StringUtils.isNotBlank(entity.getAcName())) {
  // msg = service.getCategoryName(entity);
  // }
  // json = com.alibaba.fastjson.JSON.toJSONString(msg);
  // } catch (Exception e) {
  // logger.error("<错误>:验证通讯录分类验证错误", e);
  // json = "{result:'error'}";
  // }
  // try {
  // writeJson(json);
  // } catch (IOException e) {
  // logger.error("<错误>:验证通讯录分类验证错误", e);
  // }
  // }
  //
  // /**
  // * 删除分类 建立日期 : Apr 19, 2014 5:00:24 PM<br>
  // * 作者 : 王阿敏<br>
  // *
  // * @param stringIds
  // */
  // public String deleteCategoryById() {
  // logger.debug("<进入>:deleteCategoryById方法 删除分类");
  // String[] stringIdss = stringIds.split(",");
  // Personnel p = (Personnel) getSession().getAttribute("personnel");
  // Long enterpriseId = (Long) getSession().getAttribute("enterpriseId");
  // havingadbgroup = "";
  // for (int i = 0; i < stringIdss.length; i++) {
  // Long acId = Long.valueOf(stringIdss[i]);
  // AddressbookCategoryInter adbCategory = service.findById(acId);
  // List<AddressbookGroupInter> grouplist =
  // addressbookGroupService.queryAll(p.getPersonnelId(),
  // acId.toString(), enterpriseId);
  // if (grouplist == null || grouplist.size() == 0) {
  // service.deleteCategoryById(acId);
  // } else {
  // havingadbgroup += adbCategory.getAcName() + ",";
  // }
  //
  // try {
  // Print2databaselog.print(p, OAConstant.MODULE_ADDRESSCATEGORY,
  // OAConstant.ACTION_DELETE,
  // p.getName() + ",删除通讯录分类,分类ID:" + entity.getAcId(), new Date() + "",
  // AppContext.getProperties("oabiz"));
  // } catch (UnknownHostException e) {
  // logger.error("<错误>:删除通讯录分类出错" + e);
  // }
  // }
  // return "delete";
  // }
  //
  // /**
  // * 把新的对象中有值的成员变量的值，赋给旧的对象中
  // */
  // private static void setNewValue(Object orig, Object dest) throws
  // Exception {
  // Field[] destFields = dest.getClass().getDeclaredFields();
  // for (Field field : destFields) {
  // field.setAccessible(true);
  // Object value = field.get(dest);
  // if (value == null)
  // continue;
  // if (value instanceof String && StringUtils.isBlank((String) value))
  // continue;
  // Field origField = orig.getClass().getDeclaredField(field.getName());
  // origField.setAccessible(true);
  // origField.set(orig, value);
  // }
  // }
  //
  // /**
  // * 通讯录授权中用到的 建立日期 : May 13, 2013 7:46:51 PM<br>
  // * 作者: 孙耀飞<br>
  // * 模块 : <br>
  // * 描述 : <br>
  // * 1 <br>
  // * 2 <br>
  // */
  // public String categoryList() {
  // logger.debug("<进入>:categoryList方法");
  // try {
  // Long enterpriseId = (Long) getSession().getAttribute("enterpriseId");
  // entity.setEnterpriseId(enterpriseId);
  // page.setCount(service.queryCountRole(entity));
  // List<AddressbookCategory> finalList = new
  // ArrayList<AddressbookCategory>();
  // List<AddressbookCategoryInter> interList =
  // service.queryAllByConditionRole(entity,
  // page.getStart(), page.getMax());
  // if (interList != null && interList.size() > 0) {
  // for (AddressbookCategoryInter inter : interList) {
  // AddressbookCategory a = new AddressbookCategory();
  // BeanUtilExtend.copyProperties(a, inter);
  // finalList.add(a);
  // }
  // }
  // page.setResult(finalList);
  // Personnel p = (Personnel) getSession().getAttribute("personnel");
  // try {
  // Print2databaselog.print(p, OAConstant.MODULE_ADDRESSROLE,
  // OAConstant.ACTION_SEARCH,
  // p.getName() + ",通讯录授权查询通讯录分类", new Date() + "",
  // AppContext.getProperties("oabiz"));
  // } catch (UnknownHostException e) {
  // logger.error("<错误>:通讯录授权查询分类出错" + e);
  // }
  //
  // } catch (Exception e) {
  // logger.error("<错误>:后台查询职务信息出错", e);
  // }
  // return "categoryList";
  // }

  public List<CategoryGroupView> getCategoryGroupView() {
    return categoryGroupView;
  }

  public void setCategoryGroupView(List<CategoryGroupView> categoryGroupView) {
    this.categoryGroupView = categoryGroupView;
  }


  public String getPid() {
    return pid;
  }

  public void setPid(String pid) {
    this.pid = pid;
  }

  public String getSearchAcName() {
    return searchAcName;
  }

  public void setSearchAcName(String searchAcName) {
    this.searchAcName = searchAcName;
  }

  public List<AddressbookCategory> getEnterpriseCategoryList() {
    return enterpriseCategoryList;
  }

  public void setEnterpriseCategoryList(List<AddressbookCategory> enterpriseCategoryList) {
    this.enterpriseCategoryList = enterpriseCategoryList;
  }

  public String getTreeNodes() {
    return treeNodes;
  }

  public void setTreeNodes(String treeNodes) {
    this.treeNodes = treeNodes;
  }

}
